home *** CD-ROM | disk | FTP | other *** search
/ Freaks Macintosh Archive / Freaks Macintosh Archive.bin / Freaks Macintosh Archives / Hacking & Misc / UNIX Cracking / MacCrac.sit / MacCrac / dicts.rules < prev    next >
Text File  |  1992-06-25  |  10KB  |  378 lines

  1. ###
  2. # Description file for Crack dictionary processor. ADE Muffett, Mar 1992
  3. ###
  4. # Ordinary Commands:
  5. # :    = no-op - do nothing to the input word
  6. # <n    = reject word UNLESS it is < n characters long, where n = 0-9a-z
  7. # >n    = reject word UNLESS it is > n characters long, where n = 0-9a-z
  8. # ^x    = prepend character 'x' to word
  9. # $y    = append character 'y' to word
  10. # l    = force word to be lowercase
  11. # u    = force word to be uppercase
  12. # c    = force word to be capitalised
  13. # r    = reverse word: "Fred" -> "derF"
  14. # d    = duplicate word: "Fred" -> "FredFred"
  15. # f    = reflect word: "Fred" -> "FredderF"
  16. # p    = make best attempt to pluralise a lowercase word
  17. # onx    = overstrike character in position 'n' (start at 0) with character 'x'
  18. #      nb: little overflow checking is done, so use '<' and '>' carefully
  19. # inx    = insert character 'x' in position 'n' (start at 0) and shift the rest
  20. #      of the input string right.
  21. #      eg: i3* on "wibble" yields "wib*ble"; i0* on "wibble" yields "*wibble"
  22. #      nb: if n > strlen(input), character 'x' will be appended
  23. # xnm    = extract substring from position n (start at 0) for up to m characters
  24. #      eg: using x27 on "autobogotification" yields "tobogot"
  25. #      eg: using x3a on "autobogotification" yields "obogotific" (10 chars)
  26. #      nb: little overflow checking is done, so use '<' and '>' carefully
  27. ###
  28. # Commands which may utilise character classes:    (note special use of '?')
  29. # sxy    = replace (swap) all 'x' in the word with 'y'
  30. # s?cy    = replace all characters of class 'c' in the word with y
  31. # @x    = purge all 'x' from the word
  32. # @?c    = purge all characters of class 'c' from the word
  33. # !y    = reject word if it contains character 'y'
  34. # !?c    = reject word if it contains a character in class 'c'
  35. # /x    = reject word unless it contains character 'x'
  36. # /?c    = reject word unless it contains a character in class 'c'
  37. # =nx    = reject word unless char at position 'n' is equal to x
  38. # =n?c    = reject word unless char at position 'n' is in class 'c'
  39. #      nb: the word always starts at position 0
  40. ###
  41. # Character classes for use in above:
  42. # ??    matches "?"
  43. # ?v    matches vowels aeiou
  44. # ?c    matches consonants bcdfghjklmnpqrstvwxyz
  45. # ?w    matches whitespace (space, tab)
  46. # ?p    matches punctuation .,:;'"?!`
  47. # ?s    matches symbols $%^&*()-_+=|\[]{}#@/~
  48. # ?l    matches lowercase letters
  49. # ?u    matches uppercase letters
  50. # ?d    matches any digit
  51. # ?a    matches any letter of the alphabet
  52. # ?x    matches any letter of the alphabet, or any digit (ie: is alphanumeric)
  53. # The complement of a class may be matched by the uppercase of it's letter
  54. # ie: where ?d == DIGITS, ?D == NON-DIGITS, and so on.
  55. ###
  56. # Many people haven't realised that the above is a complete language; ie:
  57. # if you want to create a dictionary of short words with "123" appended,
  58. # use "<6l$1$2$3".
  59. ###
  60. # A FINAL NOTE: remember that very few users are aware that passwords
  61. # stop at 8 chars long; so, while it IS worthwhile to check for words
  62. # being 8 or more chars long before appending a character, it is NOT
  63. # worthwhile to do the same when prepending characters. Hence:-
  64. #
  65. #        "williamsburgh"  -> "williams" }\
  66. #        "williamsburgh1" -> "williams" }/~~~Will be uniqued.
  67. #        "1williamsburgh" -> "1william"
  68. #
  69. ###
  70. # So, here we go; try to order these in the order most likely to be a
  71. # password. First we try to make selections from the pure alphabetic
  72. # words in the dicts, then we get onto the weird stuff.
  73. ######################################################################
  74.  
  75. # Force every pure alphabetic word lowercase and try it
  76. # NOT-CONTAIN ANY NON-ALPHA, LOWERCASE
  77. !?Al
  78.  
  79. # Pluralise every significant one of the above
  80. # MORE-THAN 2, NOT-CONTAIN ANY NON-ALPHA, LOWERCASE, PLURALISE
  81. >2!?Alp
  82.  
  83. # Try variations of anything that is not pure alnum
  84. # CONTAIN ANY NON-ALNUM
  85. /?X
  86. # CONTAIN ANY NON-ALNUM, CONTAIN ANY UPPER, LOWERCASE
  87. /?X/?ul
  88.  
  89. # Any alphaword >2 & <8 chars long, append a digit or simple punctuation
  90. # since few ppl add non alpha chars to a already non-alpha word
  91. # MORE-THAN 2, LESS-THAN 8, NOT ANY NON-ALPHA, LOWERCASE, APPEND <whatever>
  92. >2<8!?Al$0
  93. >2<8!?Al$1
  94. >2<8!?Al$2
  95. >2<8!?Al$3
  96. >2<8!?Al$4
  97. >2<8!?Al$5
  98. >2<8!?Al$6
  99. >2<8!?Al$7
  100. >2<8!?Al$8
  101. >2<8!?Al$9
  102. >2<8!?Al$!
  103. >2<8!?Al$.
  104. >2<8!?Al$?
  105. >2<8!?Al$ :
  106. # trailing colon (no-op) on last line delimits space character.
  107.  
  108. # Lowercase every pure alphabetic word and reverse it
  109. # MORE-THAN 2, NOT-CONTAIN ANY NON-ALPHA, LOWERCASE, REVERSE
  110. >2!?Alr
  111.  
  112. # Capitalise every pure alnum word (ie: not anything which is not alnum)
  113. # MORE-THAN 2, NOT-CONTAIN ANY NON-ALNUM, CAPITALISE
  114. >2!?Xc
  115.  
  116. # Anything uppercase
  117. # MORE-THAN 2, NOT-CONTAIN ANY NON-ALNUM, UPPERCASE
  118. >2!?Xu
  119.  
  120. # Pure alphabetic words with vowels removed which are still fairly long
  121. # NOT-CONTAIN ANY NON-ALPHA, CONTAIN ANY VOWEL, PURGE ANY VOWEL, MORE-THAN 3
  122. !?A/?v@?v>3
  123.  
  124. # Look, I'm getting really bored of this monotone uppercase typing, so
  125. # if it's OK with you, I'll drop the commentaries on each rule. You
  126. # should have got the idea by now...
  127.  
  128. # Longish pure words lowercased and reflected
  129. >2!?Alf
  130.  
  131. # Words containing whitespace, which is then squeezed out
  132. /?w@?w>3
  133.  
  134. # In a similar vein, words with punctuation, squeezed out
  135. /?p@?p>3
  136.  
  137. # Reasonably short words, duplicated. eg: "fredfred"
  138. >1<7!?Ald
  139.  
  140. ###
  141. # >From: mycroft@edu.mit.ai.gnu
  142. # >In addition to the standard dicts.rules, I use the following set.  You
  143. # >can guess what it does.
  144. # I've tidied this up a bit (I hope) - alec
  145. ###
  146. >2/asa2l
  147. >2/asa4l
  148. >2/ese3l
  149. >2/hsh4l
  150. >2/isi1l
  151. >2/lsl1l
  152. >2/oso0l
  153. >2/sss$l
  154. >2/asa2/hsh4l
  155. >2/asa2/sss$l
  156. >2/asa4/hsh4l
  157. >2/ese3/asa2l
  158. >2/ese3/asa4l
  159. >2/ese3/hsh4l
  160. >2/ese3/sss$l
  161. >2/isi1/asa2l
  162. >2/isi1/asa4l
  163. >2/isi1/ese3l
  164. >2/isi1/hsh4l
  165. >2/isi1/sss$l
  166. >2/lsl1/asa2l
  167. >2/lsl1/asa4l
  168. >2/lsl1/ese3l
  169. >2/lsl1/hsh4l
  170. >2/lsl1/isi1l
  171. >2/lsl1/oso0l
  172. >2/lsl1/sss$l
  173. >2/oso0/asa2l
  174. >2/oso0/asa4l
  175. >2/oso0/ese3l
  176. >2/oso0/hsh4l
  177. >2/oso0/isi1l
  178. >2/oso0/sss$l
  179. >2/sss$/asa4l
  180. >2/sss$/hsh4l
  181. >2/asa2/sss$/hsh4l
  182. >2/ese3/asa2/hsh4l
  183. >2/ese3/asa2/sss$l
  184. >2/ese3/asa4/hsh4l
  185. >2/ese3/sss$/asa4l
  186. >2/ese3/sss$/hsh4l
  187. >2/isi1/asa2/hsh4l
  188. >2/isi1/asa2/sss$l
  189. >2/isi1/asa4/hsh4l
  190. >2/isi1/ese3/asa2l
  191. >2/isi1/ese3/asa4l
  192. >2/isi1/ese3/hsh4l
  193. >2/isi1/ese3/sss$l
  194. >2/isi1/sss$/asa4l
  195. >2/isi1/sss$/hsh4l
  196. >2/lsl1/asa2/hsh4l
  197. >2/lsl1/asa2/sss$l
  198. >2/lsl1/asa4/hsh4l
  199. >2/lsl1/ese3/asa2l
  200. >2/lsl1/ese3/asa4l
  201. >2/lsl1/ese3/hsh4l
  202. >2/lsl1/ese3/sss$l
  203. >2/lsl1/isi1/asa2l
  204. >2/lsl1/isi1/asa4l
  205. >2/lsl1/isi1/ese3l
  206. >2/lsl1/isi1/hsh4l
  207. >2/lsl1/isi1/sss$l
  208. >2/lsl1/oso0/asa2l
  209. >2/lsl1/oso0/asa4l
  210. >2/lsl1/oso0/ese3l
  211. >2/lsl1/oso0/hsh4l
  212. >2/lsl1/oso0/isi1l
  213. >2/lsl1/oso0/sss$l
  214. >2/lsl1/sss$/asa4l
  215. >2/lsl1/sss$/hsh4l
  216. >2/oso0/asa2/hsh4l
  217. >2/oso0/asa2/sss$l
  218. >2/oso0/asa4/hsh4l
  219. >2/oso0/ese3/asa2l
  220. >2/oso0/ese3/asa4l
  221. >2/oso0/ese3/hsh4l
  222. >2/oso0/ese3/sss$l
  223. >2/oso0/isi1/asa2l
  224. >2/oso0/isi1/asa4l
  225. >2/oso0/isi1/ese3l
  226. >2/oso0/isi1/hsh4l
  227. >2/oso0/isi1/sss$l
  228. >2/oso0/sss$/asa4l
  229. >2/oso0/sss$/hsh4l
  230. >2/sss$/asa4/hsh4l
  231. >2/ese3/asa2/sss$/hsh4l
  232. >2/ese3/sss$/asa4/hsh4l
  233. >2/isi1/asa2/sss$/hsh4l
  234. >2/isi1/ese3/asa2/hsh4l
  235. >2/isi1/ese3/asa2/sss$l
  236. >2/isi1/ese3/asa4/hsh4l
  237. >2/isi1/ese3/sss$/asa4l
  238. >2/isi1/ese3/sss$/hsh4l
  239. >2/isi1/sss$/asa4/hsh4l
  240. >2/lsl1/asa2/sss$/hsh4l
  241. >2/lsl1/ese3/asa2/hsh4l
  242. >2/lsl1/ese3/asa2/sss$l
  243. >2/lsl1/ese3/asa4/hsh4l
  244. >2/lsl1/ese3/sss$/asa4l
  245. >2/lsl1/ese3/sss$/hsh4l
  246. >2/lsl1/isi1/asa2/hsh4l
  247. >2/lsl1/isi1/asa2/sss$l
  248. >2/lsl1/isi1/asa4/hsh4l
  249. >2/lsl1/isi1/ese3/asa2l
  250. >2/lsl1/isi1/ese3/asa4l
  251. >2/lsl1/isi1/ese3/hsh4l
  252. >2/lsl1/isi1/ese3/sss$l
  253. >2/lsl1/isi1/sss$/asa4l
  254. >2/lsl1/isi1/sss$/hsh4l
  255. >2/lsl1/oso0/asa2/hsh4l
  256. >2/lsl1/oso0/asa2/sss$l
  257. >2/lsl1/oso0/asa4/hsh4l
  258. >2/lsl1/oso0/ese3/asa2l
  259. >2/lsl1/oso0/ese3/asa4l
  260. >2/lsl1/oso0/ese3/hsh4l
  261. >2/lsl1/oso0/ese3/sss$l
  262. >2/lsl1/oso0/isi1/asa2l
  263. >2/lsl1/oso0/isi1/asa4l
  264. >2/lsl1/oso0/isi1/ese3l
  265. >2/lsl1/oso0/isi1/hsh4l
  266. >2/lsl1/oso0/isi1/sss$l
  267. >2/lsl1/oso0/sss$/asa4l
  268. >2/lsl1/oso0/sss$/hsh4l
  269. >2/lsl1/sss$/asa4/hsh4l
  270. >2/oso0/asa2/sss$/hsh4l
  271. >2/oso0/ese3/asa2/hsh4l
  272. >2/oso0/ese3/asa2/sss$l
  273. >2/oso0/ese3/asa4/hsh4l
  274. >2/oso0/ese3/sss$/asa4l
  275. >2/oso0/ese3/sss$/hsh4l
  276. >2/oso0/isi1/asa2/hsh4l
  277. >2/oso0/isi1/asa2/sss$l
  278. >2/oso0/isi1/asa4/hsh4l
  279. >2/oso0/isi1/ese3/asa2l
  280. >2/oso0/isi1/ese3/asa4l
  281. >2/oso0/isi1/ese3/hsh4l
  282. >2/oso0/isi1/ese3/sss$l
  283. >2/oso0/isi1/sss$/asa4l
  284. >2/oso0/isi1/sss$/hsh4l
  285. >2/oso0/sss$/asa4/hsh4l
  286. >2/isi1/ese3/asa2/sss$/hsh4l
  287. >2/isi1/ese3/sss$/asa4/hsh4l
  288. >2/lsl1/ese3/asa2/sss$/hsh4l
  289. >2/lsl1/ese3/sss$/asa4/hsh4l
  290. >2/lsl1/isi1/asa2/sss$/hsh4l
  291. >2/lsl1/isi1/ese3/asa2/hsh4l
  292. >2/lsl1/isi1/ese3/asa2/sss$l
  293. >2/lsl1/isi1/ese3/asa4/hsh4l
  294. >2/lsl1/isi1/ese3/sss$/asa4l
  295. >2/lsl1/isi1/ese3/sss$/hsh4l
  296. >2/lsl1/isi1/sss$/asa4/hsh4l
  297. >2/lsl1/oso0/asa2/sss$/hsh4l
  298. >2/lsl1/oso0/ese3/asa2/hsh4l
  299. >2/lsl1/oso0/ese3/asa2/sss$l
  300. >2/lsl1/oso0/ese3/asa4/hsh4l
  301. >2/lsl1/oso0/ese3/sss$/asa4l
  302. >2/lsl1/oso0/ese3/sss$/hsh4l
  303. >2/lsl1/oso0/isi1/asa2/hsh4l
  304. >2/lsl1/oso0/isi1/asa2/sss$l
  305. >2/lsl1/oso0/isi1/asa4/hsh4l
  306. >2/lsl1/oso0/isi1/ese3/asa2l
  307. >2/lsl1/oso0/isi1/ese3/asa4l
  308. >2/lsl1/oso0/isi1/ese3/hsh4l
  309. >2/lsl1/oso0/isi1/ese3/sss$l
  310. >2/lsl1/oso0/isi1/sss$/asa4l
  311. >2/lsl1/oso0/isi1/sss$/hsh4l
  312. >2/lsl1/oso0/sss$/asa4/hsh4l
  313. >2/oso0/ese3/asa2/sss$/hsh4l
  314. >2/oso0/ese3/sss$/asa4/hsh4l
  315. >2/oso0/isi1/asa2/sss$/hsh4l
  316. >2/oso0/isi1/ese3/asa2/hsh4l
  317. >2/oso0/isi1/ese3/asa2/sss$l
  318. >2/oso0/isi1/ese3/asa4/hsh4l
  319. >2/oso0/isi1/ese3/sss$/asa4l
  320. >2/oso0/isi1/ese3/sss$/hsh4l
  321. >2/oso0/isi1/sss$/asa4/hsh4l
  322. >2/lsl1/isi1/ese3/asa2/sss$/hsh4l
  323. >2/lsl1/isi1/ese3/sss$/asa4/hsh4l
  324. >2/lsl1/oso0/ese3/asa2/sss$/hsh4l
  325. >2/lsl1/oso0/ese3/sss$/asa4/hsh4l
  326. >2/lsl1/oso0/isi1/asa2/sss$/hsh4l
  327. >2/lsl1/oso0/isi1/ese3/asa2/hsh4l
  328. >2/lsl1/oso0/isi1/ese3/asa2/sss$l
  329. >2/lsl1/oso0/isi1/ese3/asa4/hsh4l
  330. >2/lsl1/oso0/isi1/ese3/sss$/asa4l
  331. >2/lsl1/oso0/isi1/ese3/sss$/hsh4l
  332. >2/lsl1/oso0/isi1/sss$/asa4/hsh4l
  333. >2/oso0/isi1/ese3/asa2/sss$/hsh4l
  334. >2/oso0/isi1/ese3/sss$/asa4/hsh4l
  335. >2/lsl1/oso0/isi1/ese3/asa2/sss$/hsh4l
  336. >2/lsl1/oso0/isi1/ese3/sss$/asa4/hsh4l
  337. # Bleagh! pant, pant - alec
  338.  
  339. # Oddly enough, people prefixing passwords with numbers is quite a lot
  340. # rarer than suffixing numbers.  Hence, we are further down the file
  341. # before trying this. Oh well, let's nail the buggers anyway...
  342. >2<8l^ :
  343. >2l^0
  344. >2l^1
  345. >2l^2
  346. >2l^3
  347. >2l^4
  348. >2l^5
  349. >2l^6
  350. >2l^7
  351. >2l^8
  352. >2l^9
  353.  
  354. # Capitalise and then reverse every word (eg: "derF")
  355. >2!?Xcr
  356.  
  357. # Reverse and then capitalise every alphabetic word (eg: "Derf")
  358. >2rc
  359.  
  360. # Pure words capitalised with various ejaculatory punctuation added
  361. # eg: "Cats!" for Andrew Floyd-Drebber fans...
  362. >2<8!?Ac$!
  363. >2<8!?Ac$.
  364. >2<8!?Ac$?
  365.  
  366. # Uppercase words with various things appended or swapped out
  367. >2<8u$!
  368. >2<8u$.
  369. >2<8u$?
  370. >2/OsO0u
  371.  
  372. # Really weird uppercase variations
  373. >2ud
  374. >2uf
  375. >2ur
  376.  
  377. # Yes, I know all this looks like line noise, but I haven't put regexp in yet.
  378.